#include<iostream>
#include<vector>
#include<set>
#include<algorithm>

/*给定一个未排序的整数数组 nums ，找出数字连续的最长序列（不要求序列元素在原数组中连续）的长度。
请你设计并实现时间复杂度为 O(n) 的算法解决此问题。*/

class Solution
{
    public:
    int longestConsecutive(const std::vector<int>&nums)
    {
        std::set<int>temp;
        temp.insert(nums.begin(),nums.end());
        int count = 0;
        int max = 0;
        for(auto it = temp.begin();it!=temp.end();++it)
        {
            if(it!=temp.begin()&&*std::prev(it)+1!=(*it))
            {
                count = 0;
            }
            count++;
            max = std::max(max,count);
        }
        return max;
    }
};